
import time # 导入 time 模块
from gradio_client import Client, handle_file
from datetime import datetime
import random # 导入 random 模块

client = Client("http://192.168.3.60:7860/")
total_duration = 0  # 初始化总耗时
log_file_path = "conversion_log.txt"
NUM_CONVERSIONS = 20 # 定义转换次数常量

# 定义一个包含多个文本输入的数组
gen_text_options = [
    "“培文”这个名字是可以使用的，它既有培养文化的美好寓意，又具有一定的文化气息。选择名字是一件非常个性化的事情，不仅要看它的含义，还要考虑读音、书写等方面的因素。如果你觉得这个名字符合你的期望，并且在你周围的人中没有重复的名字，那么使用这个名字是完全可以的。最终的选择还是基于你自己对这个名字的感觉和喜好。“培文”这个名字是可以使用的，它既有培养文化的美好寓意，又具有一定的文化气息。选择名字是一件非常个性化的事情，不仅要看它的含义，还要考虑读音、书写等方面的因素。如果你觉得这个名字符合你的期望，并且在你周围的人中没有重复的名字，那么使用这个名字是完全可以的。最终的选择还是基于你自己对这个名字的感觉和喜好。",
    "东青岛公安网安部门严打侵犯公民个人信息犯罪，侦破一起诱骗高校学生注册网络账号并层层倒卖的侵犯公民个人信息案，并据此发起2次集中收网行动，抓获涉案人员151人，涉案金额4300余万元。东青岛公安网安部门严打侵犯公民个人信息犯罪，侦破一起诱骗高校学生注册网络账号并层层倒卖的侵犯公民个人信息案，并据此发起2次集中收网行动，抓获涉案人员151人，涉案金额4300余万元。",
    "2024年4月，山东青岛公安网安部门工作中发现一重大侵犯公民个人信息案件线索，警方依照线索来到了一间可疑的公寓，此时公寓里正围坐着几个摆弄着手机的年轻人。这些年轻人此时还没有意识到，自己正在参与违法犯罪活动，而他们口中的“兼职”，实际上是把自己的个人信息给出卖了。2024年4月，山东青岛公安网安部门工作中发现一重大侵犯公民个人信息案件线索，警方依照线索来到了一间可疑的公寓，此时公寓里正围坐着几个摆弄着手机的年轻人。这些年轻人此时还没有意识到，自己正在参与违法犯罪活动，而他们口中的“兼职”，实际上是把自己的个人信息给出卖了。",
    "原来这些招聘“兼职”的团伙成立了所谓的“充场工作室”，承接各种手机软件和社交平台的“拉新”业务。表面看只是充个场面，实际上，涉案团伙哄骗兼职人员使用个人身份信息开展代为注册网络账号、实名手机号等“代实名注册”业务，涉案团伙通过贩卖个人信息获利。原来这些招聘“兼职”的团伙成立了所谓的“充场工作室”，承接各种手机软件和社交平台的“拉新”业务。表面看只是充个场面，实际上，涉案团伙哄骗兼职人员使用个人身份信息开展代为注册网络账号、实名手机号等“代实名注册”业务，涉案团伙通过贩卖个人信息获利。",
    "公安部多次公布依法打击侵犯公民个人信息犯罪等典型案例，揭秘犯罪手法，如：发布虚假招聘信息骗取求职者简历，出售给电诈骗等犯罪团伙牟利；购买大量网络账号利用“有偿删帖”牟利；招募兼职人员注册自媒体账号编造谣言引流牟利；公安部多次公布依法打击侵犯公民个人信息犯罪等典型案例，揭秘犯罪手法，如：发布虚假招聘信息骗取求职者简历，出售给电诈骗等犯罪团伙牟利；购买大量网络账号利用“有偿删帖”牟利；招募兼职人员注册自媒体账号编造谣言引流牟利；"
]

def log_message(message):
    now_local = datetime.now().strftime("%Y-%m-%d %H:%M:%S") # 获取当前本地时间
    log_entry = f"[{now_local}] {message}"
    print(log_entry, flush=True)
    with open(log_file_path, 'a', encoding='utf-8') as f:
        f.write(log_entry + '\n')

for i in range(NUM_CONVERSIONS): # 使用常量作为循环次数
    log_message(f"开始第 {i+1} 次转换...")
    start_time = time.time() # 记录开始时间
    
    # 从数组中随机选择一个文本作为 gen_text_input
    selected_gen_text = random.choice(gen_text_options)
    log_message(f"本次转换使用的随机文本: {selected_gen_text}")

    result = client.predict(
        # ref_audio_input=handle_file('https://tts-file2.com/s5/file/2025-05-28-102042_170451.mp3'),
        ref_audio_input=handle_file('2025-05-28-102042_170451.mp3'),
        ref_text_input="你好，一年一度的五一劳动节又来临了，我和妈妈趁这段美好的时光。黄河，一个孕育了中华民族上下五千年历史的母亲河。不知从什么时候起",
        gen_text_input=selected_gen_text, # 使用随机选择的文本
        remove_silence=False,
        randomize_seed=True,
        seed_input=0,
        cross_fade_duration_slider=0.15,
        nfe_slider=32,
        speed_slider=1,
        api_name="/basic_tts"
    )
    end_time = time.time() # 记录结束时间
    duration = end_time - start_time # 计算耗时
    total_duration += duration # 累加到总耗时
    log_message(f"第 {i+1} 次转换耗时: {duration:.2f} 秒") # 记录当次耗时
    # log_message(f"第 {i+1} 次转换结果: {result}") # 如果需要记录每次的结果，可以取消这行注释

log_message(f"\n总共执行{NUM_CONVERSIONS}次转换，总耗时: {total_duration:.2f} 秒") # 记录总耗时